1. Field of the Invention
The present invention relates to a method and apparatus for automatically providing hypertext anchor codes and destination addresses for a user-readable text file. The destination addresses are intermittently updated under the control of a central server to ensure that the destination addresses remain current. The invention is particularly suitable for use with text files which are stored on a server in a computer network such as the Internet.
2. Discussion
As the volume of information stored on computers continues to dramatically increase, new methods are sought to organize the information in an easy, intuitively retrievable way. Hypertext, which may include Hypertext Markup Language (HTML), Extended Markup Language (XML), or other forms of Standard Generalized Markup Language (SGML), is a common method of linking related computer files or pages. A file that references other information stored on a computer, whether directly or indirectly, generally displays an icon for the referenced information in some form of distinguished or highlighted text, usually colored or underlined. A computer user viewing the page can access the referenced document simply by selecting the highlighted text in the instant file, e.g., by clicking on the highlighted text with a mouse or other pointing device. A markup language anchor, or markup language hyperlink, is the reference icon on a Web page which links a user""s Web browser to relevant information.
An HTML anchor, or HTML hyperlink, is the underlined text on a Web page which links a user""s Web browser to another location. An HTML file includes text and HTML tags, and may also include graphics (e.g., hypermedia). Inside an HTML file, a tag is surrounded by angle braces xe2x80x9c less than . . .  greater than xe2x80x9d. Text is displayed on the browser""s screen with selected attributes such as font size and style. Tags are used to designate the current font, style, location, or to add images or convey other formatting details about the Web page to the browser.
Stand-alone tags and container tags may be used. Stand-alone tags involve one set of braces. For example, to put an image on the Web browser""s screen, one might use:
 less than IMG SRC=xe2x80x9cpicture.gifxe2x80x9d greater than 
xe2x80x9cIMGxe2x80x9d refers to xe2x80x9cimagexe2x80x9d. xe2x80x9cSRCxe2x80x9d, which refers to xe2x80x9csourcexe2x80x9d, is an attribute whose value is the name (i.e., source) of the file containing the image, e.g., xe2x80x9cpicture.gifxe2x80x9d. Container tags involve two sets of braces, namely one set to mark the beginning of a field, and another set of braces to mark the end of the field. HTML anchors are container tags. For example, to link the text xe2x80x9cIBMxe2x80x9d to the Uniform Resource Locator (URL) xe2x80x9cwww.ibm.comxe2x80x9d, one might use:
 less than A HREF=xe2x80x9chttp://www.ibm.netxe2x80x9d greater than IBM less than /A greater than 
xe2x80x9c less than A greater than xe2x80x9d is an anchor code in HTML. Note how the xe2x80x9c less than /A greater than xe2x80x9d indicates the end of the container tag that began with the xe2x80x9c less than A . . .  greater than xe2x80x9d tag. xe2x80x9cHREFxe2x80x9d refers to a hypertext reference attribute.
This form of hypertext, illustrated in FIG. 1, was originally conceived in March of 1989 by Tim Berners-Lee at the European Nuclear Council (CERN) as a method to disseminate information to geographically distributed researchers in high energy physics.
FIG. 1 is a block diagram of a static link architecture for linking a primary computer file to one or more destination files. Computer files, such as the primary computer file 100, are stored locally on individual Web servers, but the hypertext links are capable of referencing documents on distant servers. For example, the primary computer file 100 includes two hypertext words, xe2x80x9cAxe2x80x9d and xe2x80x9cBxe2x80x9d. The traversal of xe2x80x9cAxe2x80x9d (i.e., the user selecting xe2x80x9cAxe2x80x9d) links the user to a destination file 110, which contains text related to A. Similarly, the traversal of xe2x80x9cBxe2x80x9d links the user to a destination file 120, which contains text related to B. Generally, destination file A (110), destination file xe2x80x9cBxe2x80x9d (120) and the primary computer file 100 are each stored on physically separate servers, or computers.
The now familiar World Wide Web was launched publicly in January of 1992 when CERN opened its Web server to allow researchers to access data from the CERN server. Since then, the World Wide Web has seen incredible growth. Its uses now reach well beyond the international physics community.
The unprecedented growth in the World Wide Web has hastened the creation of more advanced methods of linking computer represented information. Graphics objects can now achieve the same linking functionality as traditional hypertext. However, these links are xe2x80x9chard codedxe2x80x9d. That is, the developer of a computer file using hypertext links (e.g., a Web developer) establishes connections for the links that remain static. The developer can manually reposition the links, but their static nature remains. One important problem facing the developer, then, is where to point the hard coded hypertext or graphics links. The developer must choose wisely, because the link will have to be manually changed later if the developer""s preferences change.
Fortunately, the growth of the World Wide Web has also led to the development of multiple search engines, such as Yahoo(trademark) and Lycos(trademark), that allow a user to find needles of Web documents in the haystack of available information. The Web developer can locate URLs of desired computer files by entering keywords in the search engine and manually filtering the results. These search engines use primarily voluntary site registrations and Web user suggestions to develop and categorize large databases of URLs. These databases allow a user to find a desired Web document, and allow a developer to find a desired URL for static hypertext and graphics links.
However, even the capability of these search engines leaves the Web developer unsatisfied. Practical considerations preclude using static links for all available information because of screen size and storage limits. Information organized in real time when requested or xe2x80x9con the flyxe2x80x9d according to a user""s preferences overcomes the static hypertext limitation. Therefore, a primary area of development has been interactivity with Java(trademark), ActiveX(trademark), and Common Gateway Interface (CGI) scripts. Java(trademark) and ActiveX(trademark) enable a personal computer to run applications that help interactively retrieve and format requested information from a local or distant Web server. Similarly, CGI scripts allow the computer to launch an application on the currently accessed Web server that interactively retrieves and formats information. The Web developer can use these methods to give the user who accesses the page some control over which files are retrieved by various links.
For example, FIG. 2 is a block diagram of a dynamic link architecture for linking a primary computer file to one or more destination files. Here, a CGI script, Java Applet, or ActiveX control xe2x80x9cAxe2x80x9d (210) is responsive to a user input (200) for linking the hypertext xe2x80x9cAxe2x80x9d in the primary computer file 100 to the destination file xe2x80x9cAxe2x80x9d (110) Likewise, a CGI script, Java Applet, or ActiveX control xe2x80x9cBxe2x80x9d (220) is responsive to a user input (230) for linking the hypertext xe2x80x9cBxe2x80x9d in the primary computer file 100 to the destination file xe2x80x9cBxe2x80x9d (120).
Thus, the Web developer has two options for providing hypertext links in a primary computer file. The developer can insert static hypertext or graphics links using the search engines to determine the precise destination of the links. Alternatively, the developer can use an interactive method that allows the current user viewing the computer page to input preferences. These preferences are then used to filter, in real time, available files and retrieve the desired information.
However, these options suffer from two important disadvantages. First, the manual process by which static links are entered is tedious. A Web developer must find the desired destination URLs using available search engines and manually annotate the hypertext file with those URLs. If the developer""s preferences later change, or if the URL is changed, the process must be repeated.
FIG. 3 illustrates the manual insertion of hyperlinks into a primary computer file. A primary computer file 300 contains text, such as a news article. At 310, manual link insertion must be performed by manually identifying the particular words in the primary computer file 300 which are to have links. Next, corresponding anchor codes and URLs which are written in an HTML format must be inserted into the primary computer file. Finally, the primary computer file 100 with the hypertext xe2x80x9cAxe2x80x9d and xe2x80x9cBxe2x80x9d is obtained.
A second disadvantage with existing techniques for providing hypertext links is that a Web developer must either provide static links or allow the user some control over the destination of those links. Dynamic links created with Java, ActiveX, or CGI scripts can disallow user input, but current methods would reduce such emasculated dynamic links to effectively static links. That is, the developer would have to modify such links manually, and that manual modification is the essence of a static link.
Accordingly, it would be desirable to provide a system which allows a Web developer to automatically enter hypertext links into a computer file such as a news article or other sequence of user-readable character strings. The system should also provide simple and central control over the destination of previously static links. The system should allow updating of the links without requiring further processing of the computer file. The system should also provide pre-assigned preferred destination addresses for specific character strings.
For destination addresses which are not pre-assigned, the system should provide the capability to search a computer network to assign an appropriate destination addresses. This search should be performed in accordance with preference criteria. The system should provide the capability to assign class codes to the specific character strings. Additionally, the system should assign expiration periods or dates to the destination addresses. The system should maintain a hit count of the character strings at each content server, and provide a capability for transmitting hit count data to the central server.
The present invention provides a system having the above and other advantages.
The present invention relates to a method and apparatus for automatically providing hypertext anchor codes and destination addresses for a user-readable text file at a content server. Central control over a plurality of content servers is also provided.
A hypertext link is provided for a character string of a text file or other computer information. The invention may be implemented in a variety of ways. For example, when the character strings are provided in a discrete file, anchor codes may be inserted into the file which reference destination addressees such as URLs which are stored in a separate database. Alternatively, the anchor codes may reference a database location which is subsequently provided with a destination address.
In another alternative, the anchor code and/or destination addresses may be associated with particular character strings using relational database programming techniques, such as Structured Query Language (SQL). Moreover, the association between the character strings and the destination addresses, or destination address locations, may be initiated in different ways.
For example, the association may be initiated under the control of an administrator of a content server on which the text files or other computer information is stored. Alternatively, the association may be initiated by a remote Web user who activates particular text or other icon on his computer screen. In another alternative, the association may be initiated by a central server which has the capability to provide control signals to the content server.
Regardless of the specific implementation, provision of a timely destination address for character strings in the text file or other computer information is provided.
A central server may provide central control of the links of text files of a plurality of content servers in an information network such as the Internet. The central server intermittently updates each content server with new character strings and/or destination addresses, and also receives new character strings from the content server.
Optionally, each content server can query the central server on a real-time basis to obtain a destination address for a character string which has no valid corresponding destination address at the content server. The central server responds to such queries by searching its master databases, and using a search engine if required, to obtain a destination address.
Hit count data may be maintained at the content servers and transmitted to the central server from time to time to allow tracking of links which are selected by Web users.
In one embodiment, a computer system provides hypertext links for a plurality of character strings including a first character string. The computer system comprises: an annotation database associated with a primary computer which comprises a plurality of linkable character strings; a destination database associated with the primary computer which comprises a plurality of destination addresses; and determining means associated with the primary computer for determining a matching linkable character string for the first character string, if present, in the annotation database; wherein the matching linkable character string is associated with at least one of the destination addresses.
The computer system may further comprise querying means associated with the primary computer for querying the destination database to obtain the at least one destination address corresponding to the matching linkable character string.
The computer system may further comprise means associated with the primary computer for providing an anchor code which relates the matching linkable character string to the at least one corresponding destination address to provide a hypertext link for the first character string.
The system can thus process each character string in an article to provide destination addresses for each user-readable character string which has a match in the annotation database. The anchor code is preferably maintained separate from the destination address so the destination address can be easily updated without modifying the anchor code.
Optionally, the annotation database further comprises a plurality of class codes which are associated with the plurality of linkable character strings; the matching linkable character string has a plurality of class codes associated therewith; the destination database comprises a plurality of destination addresses corresponding to the plurality of class codes of the matching linkable character string; querying means associated with the primary computer for querying the destination database to obtain the plurality of destination addresses corresponding to the associated plurality of class codes; and means associated with the primary computer for providing a plurality of anchor codes which relate the matching linkable character string to the corresponding plurality of destination addresses to provide a corresponding plurality of hypertext links for the first character string.
For example, one class code may designate a home page for the first user-readable character string, while a second class code designates a stock quote page for the first user-readable character string.
Optionally, writing means associated with the primary computer for writing a plurality of character strings into a primary computer file in which the first character string is carried to identify the corresponding plurality of hypertext links for the first character string.
The computer system may further comprise interface means such as a graphical user interface for receiving an administrator input which designates the first character string. That is, a content server administrator may select particular words to be linked if it is expected that the particular words are not already in the annotation database. The writing means is adapted to write a linkable character string corresponding to the first character string into the annotation database when the matching linkable character string is not present in the annotation database. Thus, the annotation database is updated with the new character string.
The computer system may further comprise interface means for receiving an administrator input which designates the first character string; transmitting means for transmitting the first character string to a central computer via a communication network when a linkable character string corresponding to the first character string is not present in the annotation database; wherein the central computer is adapted to provide a corresponding destination address; and receiving means for receiving the corresponding destination address from the central computer via the communication network.
Optionally, the writing means is adapted to update the destination database with the corresponding destination address received from the central computer.
The computer system may further comprise transmitting means for transmitting the first character string to a central computer via a communication network when a destination address corresponding to the first character string is not present in the destination database; wherein the central computer is adapted to provide a corresponding destination address; and receiving means for receiving the corresponding destination address from the central computer via the communication network.
Optionally, the writing means is adapted to update the destination database with the corresponding destination address received from the central computer.
The computer system may further comprise receiving means for receiving updated linkable character strings from a central computer via a communication network in an intermittent maintenance mode; wherein the writing means is adapted to update the annotation database with the updated linkable character strings.
The computer system may further comprise receiving means for receiving updated destination addresses from the central computer via the communication network in an intermittent maintenance mode; wherein the writing means is adapted to update the destination database with the updated destination addresses.
The computer system may further comprise qualifying means associated with the destination database for qualifying the at least one corresponding destination address according to an expiration date associated therewith.
Optionally, transmitting means responsive to the qualifying means are provided for transmitting the matching linkable character string to a central computer via a communication network if the associated expiration date of the at least one corresponding destination address has passed; wherein the central computer is adapted to provide an updated destination address corresponding to the matching linkable character string; and receiving means for receiving the updated destination address from the central computer via the communication network.
Optionally, the writing means is adapted to update the destination database with the updated destination address
When at least some of the linkable character strings in the annotation database have an associated major class code, the computer system may further comprise qualifying means associated with the annotation database for qualifying the matching linkable character string according to qualification criteria which requires the major class code of the matching linkable character string to match a preferred major class code.
Optionally, interface means associated with the primary computer are provided for receiving an administrator input which designates the preferred major class code.
Receiving means may also be provided for receiving a signal indicative of the preferred major class code from a central computer via a communication network.
The computer system may further comprise record keeping means for maintaining hit count data relating to the plurality of character strings; and transmitting means for transmitting the hit count data to a central computer via a communication network.
The computer system may further comprise interface means for receiving an administrator input which designates at least one character string of the plurality of character strings which does not have a corresponding matching character string in the annotation database; and transmitting means for transmitting the at least one character string to a central computer via a communication network for updating the central computer in an intermittent maintenance mode.
In a further embodiment, a computer system includes a central computer adapted to communicate with a plurality of primary computers via a communication network. The computer system comprises defining means associated with the central computer for defining a plurality of linkable character strings; an annotation database associated with the central computer for storing the plurality of linkable character strings; assigning means associated with the central computer for assigning at least one corresponding destination address to each of the linkable character strings; a destination database associated with the central computer for storing the assigned destination addresses; and transmitting means associated with the central computer for transmitting specific ones of the plurality of linkable character strings and specific ones of the destination addresses to the plurality of primary computers via the communication network in an intermittent maintenance mode.
The assigning means is adapted to communicate with a search engine for searching an information network using particular ones of the linkable character strings as search terms to obtain particular ones of the corresponding destination addresses.
Particular ones of the linkable character strings and particular ones of the corresponding destination addresses are accorded a preferred status such that the assigning means pre-assigns the particular ones of the corresponding destination addresses to the particular ones of the linkable character strings without searching an information network. The preferred status may be based on a payment received from a preferred provider, i.e., the operator of a particular Web page.
The computer system further comprises a destination filter associated with the assigning means for filtering destination addresses obtained from the search engine according to preference criteria to obtain the destination addresses which are assigned to the linkable character strings.
The computer system further comprises receiving means associated with the central computer for receiving a first character string from a particular one of the primary computers via the communication network; querying means associated with the central computer for querying the destination database to obtain at least one destination address corresponding to the first character string; and transmitting means for transmitting the at least one corresponding destination address to the particular primary computer via the communication network.
The computer system further comprises receiving means associated with the central computer for receiving designated character strings from the primary computers via the communication network in the periodic maintenance mode; the designated character strings being designated by an administrator input at the primary computers; and writing means associated with the central computer for updating the annotation database with the designated character strings if the designated character strings are not present in the annotation database.
Optionally, the assigning means is adapted to communicate with a search engine for searching an information network using the designated character strings as search terms to obtain corresponding destination addresses; and the writing means is adapted to update the destination database with the corresponding destination addresses.
Optionally, a screening filter is provided for screening the designated character strings to eliminate words that may have been improperly designated, e.g., including misspelled words, or common place words such as xe2x80x9cthexe2x80x9d or xe2x80x9caxe2x80x9d which should not be linked to.
The assigning means may assign corresponding expiration period data to the assigned destination addresses; and the transmitting means may transmit the expiration period data to the plurality of primary computers via the communication network.
The assigning means is adapted to assign major class code data to the plurality of linkable character strings; the annotation database is adapted to store the major class code data; and the transmitting means is adapted to transmit the major class code data to the plurality of primary computers via the communication network.
The assigning means is adapted to assign a plurality of the corresponding destination addresses to at least one of the linkable character strings.
The computer system further comprises receiving means associated with the central computer for receiving hit count data from the primary computers via the communication network.
In a further embodiment, a method for providing hypertext links for a plurality of character strings, including a first character string, comprises the steps of: providing an annotation database associated with a primary computer which comprises a plurality of linkable character strings; providing a destination database associated with the primary computer which comprises a plurality of destination addresses; and determining a matching linkable character string for the first character string, if present, in the annotation database; wherein the matching linkable character string is associated with at least one of the destination addresses.
The method may comprise the further step of providing querying means associated with the primary computer for querying the destination database to obtain the at least one destination address corresponding to the matching linkable character string.
The method may comprise the further step of providing an anchor code which relates the matching linkable character string to the at least one corresponding destination address to provide a hypertext link for the first character string.
Optionally, the annotation database further comprises a plurality of class codes which are associated with the plurality of linkable character strings; the matching linkable character string has a plurality of class codes associated therewith; and the destination database comprises a plurality of destination addresses corresponding to the plurality of class codes of the matching linkable character string; in which case the method comprises the further steps of querying the destination database to obtain the plurality of destination addresses corresponding to the associated plurality of class codes; and providing a plurality of anchor codes which relate the matching linkable character string to the corresponding plurality of destination addresses to provide a corresponding plurality of hypertext links for the first character string.
The method may comprise the further step of writing a plurality of character strings into a primary computer file in which the first character string is carried to identify the corresponding plurality of hypertext links for the first character string.
Optionally, the method comprises the further steps of receiving an administrator input which designates the first character string; and writing a linkable character string corresponding to the first character string into the annotation database when the matching linkable character string is not present in the annotation database.
Optionally, the method comprises the further steps of receiving an administrator input which designates the first character string; transmitting the first character string to a central computer via a communication network when a linkable character string corresponding to the first character string is not present in the annotation database; wherein the central computer is adapted to provide a corresponding destination address; and receiving the corresponding destination address from the central computer via the communication network.
The destination database may be updated with the corresponding destination address received from the central computer.
Optionally, the method comprises the further steps of transmitting the first character string to a central computer via a communication network when a destination address corresponding to the first character string is not present in the annotation database; wherein the central computer is adapted to provide a corresponding destination address; and receiving the corresponding destination address from the central computer via the communication network.
The method may comprise the further steps of receiving updated linkable character strings from a central computer via a communication network in an intermittent maintenance mode; and updating the annotation database with the updated linkable character strings.
Optionally, the method comprises the further steps of receiving updated destination addresses from the central computer via the communication network in an intermittent maintenance mode; and updating the destination database with the updated destination addresses.
The method may comprise the further step of qualifying the at least one corresponding destination address according to an expiration date associated therewith.
The method may comprise the further step of transmitting the matching linkable character string to a central computer via a communication network if the associated expiration date of the at least one corresponding destination address has passed; wherein the central computer is adapted to provide an updated destination address corresponding to the matching linkable character string; and receiving the updated destination address from the central computer via the communication network.
Optionally, the destination database is updated with the updated destination address.
When at least some of the linkable character strings in the annotation database have an associated major class code, the method may comprise the further steps of qualifying the matching linkable character string according to qualification criteria which requires the major class code of the matching linkable character string to match a preferred major class code.
The method may comprise the further steps of receiving an administrator input which designates the preferred major class code.
The method may comprise the further steps of receiving a signal indicative of the preferred major class code from a central computer via a communication network.
The method may comprise the further steps of maintaining hit count data relating to the plurality of character strings; and transmitting the hit count data to a central computer via a communication network.
The method may comprise the further steps of receiving an administrator input which designates at least one character string of the plurality of character strings which does not have a corresponding matching character string in the annotation database; and transmitting the at least one character string to a central computer via a communication network for updating the central computer in an intermittent maintenance mode.
In a further embodiment, a method is presented for communicating with a plurality of primary computers via a communication network. The method comprises the steps of: defining a plurality of linkable character strings at a central computer; storing the plurality of linkable character strings in an annotation database associated with the central computer; assigning at least one corresponding destination address to each of the linkable character strings; storing the assigned destination addresses at a destination database associated with the central computer; and transmitting specific ones of the plurality of linkable character strings and specific ones of the destination addresses to the plurality of primary computers via the communication network in an intermittent maintenance mode.
The method may comprise the further steps of communicating with a search engine for searching an information network using particular ones of the linkable character strings as search terms to obtain particular ones of the corresponding destination addresses.
The method may comprise the further steps of filtering destination addresses obtained from the search engine according to preference criteria to obtain the destination addresses which are assigned to the linkable character strings.
The method may comprise the further steps of receiving a first character string from a particular one of the primary computers via the communication network; querying the destination database to obtain at least one destination address corresponding to the first character string; and transmitting the at least one corresponding destination address to the particular primary computer via the communication network.
The method may comprise the further steps of receiving designated character strings from the primary computers via the communication network in the periodic maintenance mode; wherein the designated character strings are designated by an administrator input at the primary computers; updating the annotation database with the designated character strings if the designated character strings are not present in the annotation database.
The method may comprise the further steps of communicating with a search engine for searching an information network using the designated character strings as search terms to obtain corresponding destination addresses; and updating the destination database with the corresponding destination addresses.
The features, objectives and advantages of the invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference designators refer to like elements throughout.